/*
 * ParametrosDificultad.h
 *
 *  Created on: 24/06/2014
 *      Author: loreyalan
 */

#ifndef PARAMETROS_DIFICULTAD_H_
#define PARAMETROS_DIFICULTAD_H_

#include "defines.h"
#include <vector>
#include "ComandoServidor.h"

typedef struct{
	int maxMovSinLanzar;
	int MaxCiclosSinAves;
	int cantBloqueosAQuitarH;
	int cantBloqueosAQuitarV;
	int maxCiclosSinTortas;
	int cantTramosNivelActual;
}dificultad;

using namespace std;

class ParametrosDificultad {
private:
	//Instancia del interprete.
    static ParametrosDificultad *instance;
    //Constructor privado por ser un singleton.
	ParametrosDificultad();
	//Mapa con los comandos por accion.
	static const size_t size = 10;
	std::vector<dificultad> mapaParametros;

public:
	/*Para obtener la instancia si la hay, sino generarla. */
	static ParametrosDificultad *getInstance();
	/*Destructor*/
	~ParametrosDificultad();
	void setParmsPorNivel(unsigned short int nivel, int *maxMovSinLanzar, int *MaxCiclosSinAves, int *cantBloqueosAQuitarH,int *cantBloqueosAQuitarV, int *maxCiclosSinTortas,	int *cantTramosNivelActual);
};

#endif /* PARAMETROS_DIFICULTAD_H_ */
